#ifndef IMONITOR_H
#define IMONITOR_H

#include <QObject>
#include <QPoint>

class IMonitor : public QObject
{
    Q_OBJECT
public:
    explicit IMonitor(QObject *parent = nullptr);
    virtual void screenShot() = 0;
    virtual QString screenShotSync(); // ToDo 同步异步方式  适配其他平台
    virtual void stopMonitor() = 0;


signals:
    void mouseBtnPressed(QPoint p);
    void mouseBtnReleased(QPoint p);

    void mouseLeftBtnPressed(QPoint p);
    void mouseLeftBtnReleased(QPoint p);

    void mouseRightBtnPressed(QPoint p);
    void mouseRightBtnReleased(QPoint p);

    void mouseWheel(QPoint p);

    void keyPressed(int code);
    void keyReleased(int code);

    void keyPressed(QString name);
    void keyReleased(QString name);

    void contentPicked(QString appName, QString content);

    void screenShotDone(QString filepath);

};


#endif // IMONITOR_H
